package org.huyue.huyuexia.service;

import org.huyue.huyuexia.pojo.Query.UserQueryParam;
import org.huyue.huyuexia.pojo.User;
import org.huyue.huyuexia.util.pojo.LoginInfo;
import org.huyue.huyuexia.util.pojo.PageResult;

import java.util.List;
import java.util.Map;

public interface UserService {
    /**
     * 查询所有用户
     * @return
     */
    PageResult findAll(UserQueryParam userQueryParam);

    /**
     * 根据id查询用户
     * @param id
     * @return
     */
    User findById(Integer id);

    /**
     * 删除用户
     * @param id
     */
    void Delete(Integer id);

    /**
     * 添加用户
     * @param user
     */
    void add(User user);

    /**
     * 修改用户
     * @param user
     */
    void update(User user);

    /**
     * 登录
     * @param user
     * @return
     */
    LoginInfo login(User user);

    /**
     * 注册
     * @param username
     * @param password
     */
    void register(String username,String  password);

    /**
     * 关注别人

     * @param followId 关注对象Id
     */
    Boolean follow(Integer followId);

    /**
     * 获取到每个用户发布文章的数量
     */
    List<Map> getArticleCount();
}
